﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ВидыСтрокДереваСпецификаций
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"04da8996-121c-44f0-b9f4-e4c1cccef236\", \"Представление\":\"КонечнаяПродукция\"}")]
		КонечнаяПродукция = 0,//Конечная продукция
		[EnumMember(Value = "{\"Ссылка\":\"1cc72601-9dbc-4db3-a15a-5596e5e5b0a6\", \"Представление\":\"ИсходныеКомплектующие\"}")]
		ИсходныеКомплектующие = 1,//Исходные комплектующие
		[EnumMember(Value = "{\"Ссылка\":\"2a1faf91-9111-494d-8be1-fb6e1e297c01\", \"Представление\":\"Номенклатура\"}")]
		Номенклатура = 2,
		[EnumMember(Value = "{\"Ссылка\":\"4e68b26b-5f40-47f6-8e42-de82da8c4614\", \"Представление\":\"Узел\"}")]
		Узел = 3,
		[EnumMember(Value = "{\"Ссылка\":\"70a8393d-3fee-471a-9006-e228a2d829bb\", \"Представление\":\"ВыходныеИзделия\"}")]
		ВыходныеИзделия = 4,//Выходные изделия
		[EnumMember(Value = "{\"Ссылка\":\"48461e23-6bf1-4fbb-9be1-237eca0a5e4a\", \"Представление\":\"ВыходноеИзделие\"}")]
		ВыходноеИзделие = 5,//Выходное изделие
		[EnumMember(Value = "{\"Ссылка\":\"8276dbb8-652c-4608-a4a7-9ec8770fde57\", \"Представление\":\"ВозвратныеОтходы\"}")]
		ВозвратныеОтходы = 6,//Возвратные отходы
		[EnumMember(Value = "{\"Ссылка\":\"c056c697-27f5-49fa-b6b0-7df387e6edfe\", \"Представление\":\"ВозвратныйОтход\"}")]
		ВозвратныйОтход = 7,//Возвратный отход
	}
	public static partial class ВидыСтрокДереваСпецификаций_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid КонечнаяПродукция = new Guid("c1e4f4b9-cecc-36f2-44f0-121c04da8996");//Конечная продукция
		public static readonly Guid ИсходныеКомплектующие = new Guid("96555aa1-e5e5-a6b0-4db3-9dbc1cc72601");//Исходные комплектующие
		public static readonly Guid Номенклатура = new Guid("6efbe18b-291e-017c-494d-91112a1faf91");
		public static readonly Guid Узел = new Guid("82de428e-8cda-1446-47f6-5f404e68b26b");
		public static readonly Guid ВыходныеИзделия = new Guid("28e20690-d8a2-bb29-471a-3fee70a8393d");//Выходные изделия
		public static readonly Guid ВыходноеИзделие = new Guid("7e23e19b-0aca-4a5e-4fbb-6bf148461e23");//Выходное изделие
		public static readonly Guid ВозвратныеОтходы = new Guid("c89ea7a4-0f77-57de-4608-652c8276dbb8");//Возвратные отходы
		public static readonly Guid ВозвратныйОтход = new Guid("f37db0b6-e687-feed-49fa-27f5c056c697");//Возвратный отход
		public static ВидыСтрокДереваСпецификаций Получить(this ВидыСтрокДереваСпецификаций Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыСтрокДереваСпецификаций Получить(this ВидыСтрокДереваСпецификаций Значение, Guid Ссылка)
		{
			if(Ссылка == КонечнаяПродукция)
			{
				return ВидыСтрокДереваСпецификаций.КонечнаяПродукция;
			}
			else if(Ссылка == ИсходныеКомплектующие)
			{
				return ВидыСтрокДереваСпецификаций.ИсходныеКомплектующие;
			}
			else if(Ссылка == Номенклатура)
			{
				return ВидыСтрокДереваСпецификаций.Номенклатура;
			}
			else if(Ссылка == Узел)
			{
				return ВидыСтрокДереваСпецификаций.Узел;
			}
			else if(Ссылка == ВыходныеИзделия)
			{
				return ВидыСтрокДереваСпецификаций.ВыходныеИзделия;
			}
			else if(Ссылка == ВыходноеИзделие)
			{
				return ВидыСтрокДереваСпецификаций.ВыходноеИзделие;
			}
			else if(Ссылка == ВозвратныеОтходы)
			{
				return ВидыСтрокДереваСпецификаций.ВозвратныеОтходы;
			}
			else if(Ссылка == ВозвратныйОтход)
			{
				return ВидыСтрокДереваСпецификаций.ВозвратныйОтход;
			}
			return ВидыСтрокДереваСпецификаций.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыСтрокДереваСпецификаций Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыСтрокДереваСпецификаций Значение)
		{
			switch (Значение)
			{
				case ВидыСтрокДереваСпецификаций.КонечнаяПродукция: return КонечнаяПродукция;
				case ВидыСтрокДереваСпецификаций.ИсходныеКомплектующие: return ИсходныеКомплектующие;
				case ВидыСтрокДереваСпецификаций.Номенклатура: return Номенклатура;
				case ВидыСтрокДереваСпецификаций.Узел: return Узел;
				case ВидыСтрокДереваСпецификаций.ВыходныеИзделия: return ВыходныеИзделия;
				case ВидыСтрокДереваСпецификаций.ВыходноеИзделие: return ВыходноеИзделие;
				case ВидыСтрокДереваСпецификаций.ВозвратныеОтходы: return ВозвратныеОтходы;
				case ВидыСтрокДереваСпецификаций.ВозвратныйОтход: return ВозвратныйОтход;
			}
			return Guid.Empty;
		}
	}
}